/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wasolicitudesfiec.logicacontrol.SolicitarAperturaPostgrado;

import web.util.Constantes;
import entidad.apertura.Solicitudaperturapostgrado;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.context.FacesContext;
import wasolicitudesfiec.AperturaPostgrado.HistorialAperturaPostgrado;
import wasolicitudesfiec.logicacontrol.*;
import wasolicitudesfiec.general.MensajeException;

/**
 *
 * @author kabad
 */
public class CTRL_HistorialAperturaPostgrado extends CTRL_Base {

    private HistorialAperturaPostgrado gui;
    private LogicaHistorial logicaHistorial;

    public CTRL_HistorialAperturaPostgrado(HistorialAperturaPostgrado gui, FacesContext facesContext) {
        super(facesContext);
        this.gui = gui;
    }

    public String getNombreInstanciaProceso() {
        String instancia;
        instancia = (String) externalContext.getSessionMap().get("instancia");
        return instancia;
    }

    public void inicializar() throws MensajeException {
        try {
            logicaHistorial = new LogicaHistorial();
            String actividad = externalContext.getRequestParameterMap().get("actividad");
            gui.getMenu().setTitulo("Actividad: " + actividad);
            int idNodo = Integer.parseInt(externalContext.getRequestParameterMap().get("idNodo"));
            int idSolicitud = new Integer(logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.idSolicitudActividad));
            Solicitudaperturapostgrado solicitud = logica.getLogAperturaPostgrado().leerSolicitudAperturaNivel2(idSolicitud);
            if (Constantes.SolicitarAperturaPostgrado.solicitarApertura.equals(actividad)) {
                gui.getPanelsolicitarApertura().setRendered(true);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInformeEvaluador1().setRendered(false);
                gui.getPanelemitirInformeEvaluador2().setRendered(false);
                gui.getPanelemitirInformeEvaluador3().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelIngresoResolucion().setRendered(false);

            } else if (Constantes.SolicitarAperturaPostgrado.revisarSolicitud.equals(actividad)) {
                gui.getPanelsolicitarApertura().setRendered(false);
                String decisionRevision = this.logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.decisionRevision);
                gui.getPanelrevisarSolicitud().setRendered(true);
                if (decisionRevision.equals(Constantes.Atributo.Decision.SolicitarInforme.toString())) {
                    gui.getPanelsolicitarInforme().setRendered(true);
                } else {
                    gui.getPanelsolicitarInforme().setRendered(false);
                }
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInformeEvaluador1().setRendered(false);
                gui.getPanelemitirInformeEvaluador2().setRendered(false);
                gui.getPanelemitirInformeEvaluador3().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelIngresoResolucion().setRendered(false);

            } else if (Constantes.SolicitarAperturaPostgrado.volveraSolicitar.equals(actividad)) {
                gui.getPanelsolicitarApertura().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(true);
                gui.getPanelemitirInformeEvaluador1().setRendered(false);
                gui.getPanelemitirInformeEvaluador2().setRendered(false);
                gui.getPanelemitirInformeEvaluador3().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelIngresoResolucion().setRendered(false);

            } else if (Constantes.SolicitarAperturaPostgrado.emitirInformeEvaluador1.equals(actividad)) {
                gui.getPanelsolicitarApertura().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInformeEvaluador1().setRendered(true);
                gui.getPanelemitirInformeEvaluador2().setRendered(false);
                gui.getPanelemitirInformeEvaluador3().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelIngresoResolucion().setRendered(false);
            } else if (Constantes.SolicitarAperturaPostgrado.emitirInformeEvaluador2.equals(actividad)) {
                gui.getPanelsolicitarApertura().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInformeEvaluador1().setRendered(false);
                gui.getPanelemitirInformeEvaluador2().setRendered(true);
                gui.getPanelemitirInformeEvaluador3().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelIngresoResolucion().setRendered(false);
            } else if (Constantes.SolicitarAperturaPostgrado.emitirInformeEvaluador3.equals(actividad)) {
                gui.getPanelsolicitarApertura().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInformeEvaluador1().setRendered(false);
                gui.getPanelemitirInformeEvaluador2().setRendered(false);
                gui.getPanelemitirInformeEvaluador3().setRendered(true);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelIngresoResolucion().setRendered(false);

            } else if (Constantes.SolicitarAperturaPostgrado.revisarInformes.equals(actividad)) {
                gui.getPanelsolicitarApertura().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(true);
                gui.getPanelemitirInformeEvaluador1().setRendered(false);
                gui.getPanelemitirInformeEvaluador2().setRendered(false);
                gui.getPanelemitirInformeEvaluador3().setRendered(false);
                gui.getPanelIngresoResolucion().setRendered(false);

            } else if (Constantes.SolicitarAperturaPostgrado.ingresarResolucion.equals(actividad)) {
                gui.getPanelsolicitarApertura().setRendered(false);
                gui.getPanelrevisarSolicitud().setRendered(false);
                gui.getPanelvolveraSolicitar().setRendered(false);
                gui.getPanelemitirInformeEvaluador1().setRendered(false);
                gui.getPanelemitirInformeEvaluador2().setRendered(false);
                gui.getPanelemitirInformeEvaluador3().setRendered(false);
                gui.getPanelrevisarInformes().setRendered(false);
                gui.getPanelIngresoResolucion().setRendered(true);
            }

            if (solicitud.getFkIdDecano() != 0) {
                gui.getLblDecano().setText(solicitud.getDecano().getPersona().toString());
                gui.getLblDecano1().setText(solicitud.getDecano().getPersona().toString());
            }
            if (solicitud.getFkIdProfesor() != 0) {
                gui.getLblSolicitante().setText(solicitud.getProfesor().getPersona().toString());
                gui.getLblSolicitante1().setText(solicitud.getProfesor().getPersona().toString());
            }

            gui.getLblFecha().setText(solicitud.getFechamodificacion());
            gui.getLblTema().setText(solicitud.getTema());
            gui.getLblTipo().setText(solicitud.getTipo());
            if ((solicitud.getObservacionProfesor() == null) || solicitud.getObservacionProfesor().equals("")) {
                gui.getTxtaObservacionesSolicitante().setValue(Constantes.Mensajes.noComentarios);
            } else {
                gui.getTxtaObservacionesSolicitante().setValue(solicitud.getObservacionProfesor());
            }
            String decisionRevision = this.logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.decisionRevision);
               if (decisionRevision.equals(Constantes.Atributo.Decision.SolicitarInforme.toString())) {
                gui.getLblDecision().setText(decisionRevision + " a evaluador(es).");
            } else {
                gui.getLblDecision().setText(decisionRevision + " la solicitud");
            }
            String decisionEvaluacion = this.logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.decisionEvaluacion);
            gui.getLblDecision1().setText(decisionEvaluacion + " la solicitud");
            String decisionVolverASolicitar = this.logicaHistorial.leerPropiedadporActividad(idNodo, Constantes.Atributo.decisionVolverASolicitar);
            gui.getLblDecisionVolverASolicitar().setText(decisionVolverASolicitar + " la solicitud");
            
            if ((solicitud.getObservacionDecano() == null) || solicitud.getObservacionDecano().equals("")) {
                gui.getTxtaObservacionesDecano().setValue(Constantes.Mensajes.noComentarios);
                gui.getTxtaObservacionesDecano1().setValue(Constantes.Mensajes.noComentarios);
            } else {
                gui.getTxtaObservacionesDecano().setValue(solicitud.getObservacionDecano());
                gui.getTxtaObservacionesDecano1().setValue(solicitud.getObservacionDecano());
            }
            String evaluadores = "";
            if (solicitud.getFkIdEvaluador1() != 0) {
                evaluadores = solicitud.getEvaluador1().getPersona().toString() + ", ";
                gui.getLblEvaluadorInforme1().setText("El informe del evaluador " + solicitud.getEvaluador1().getPersona().toString() + " es: ");
                gui.getLblInforme1().setText(solicitud.getInforme1());
                gui.getTxtaObservacionesEvaluador1().setValue(solicitud.getObservacionEvaluador1());
            }
            if (solicitud.getFkIdEvaluador2() != 0) {
                evaluadores += solicitud.getEvaluador2().getPersona().toString() + ", ";
                gui.getLblEvaluadorInforme2().setText("El informe del evaluador " + solicitud.getEvaluador2().getPersona().toString() + " es: ");
                gui.getLblInforme2().setText(solicitud.getInforme2());
                gui.getTxtaObservacionesEvaluador2().setValue(solicitud.getObservacionEvaluador2());
            }
            if (solicitud.getFkIdEvaluador3() != 0) {
                evaluadores += solicitud.getEvaluador3().getPersona().toString();
                gui.getLblEvaluadorInforme3().setText("El informe del evaluador " + solicitud.getEvaluador3().getPersona().toString() + " es: ");
                gui.getLblInforme3().setText(solicitud.getInforme3());
                gui.getTxtaObservacionesEvaluador3().setValue(solicitud.getObservacionEvaluador3());
            }
            gui.getLblEvaluador1().setText(evaluadores);

              gui.getLblNumResolucion().setText(solicitud.getResolucion());
            gui.getLblResultadoResolucion().setText(solicitud.getResultadoResolucion());
            gui.setIdSolicitud(solicitud.getIdSolicitudApertura());
            if(solicitud.getFkIdSecretaria()!=0){
                gui.getLblSecretaria().setText(solicitud.getSecretaria().toString());
            }
            if ((solicitud.getNombreArchivo() == null) || solicitud.getNombreArchivo().equals("")) {
                gui.getLinkArchivo().setRendered(false);
                gui.getStNoArchivo().setRendered(true);
            } else {
                gui.getLinkArchivo().setRendered(true);
                gui.getStNoArchivo().setRendered(false);
                gui.getLinkArchivo().setText(solicitud.getNombreArchivo());
                gui.getLinkArchivo().setUrl(Constantes.Rutas.rutaArchivos + solicitud.getPathArchivoAdjunto().replaceAll(" ", "%20"));
            }
            if ((solicitud.getResolucion() == null) || solicitud.getResolucion().equals("")) {
                gui.getTxtaResolucion().setValue(Constantes.Mensajes.noresoluciones);
            } else {
                gui.getTxtaResolucion().setValue(solicitud.getResolucion());
            }
        } catch (Exception ex) {
            ex.printStackTrace();
            Logger.getLogger(CTRL_HistorialAperturaPostgrado.class.getName()).log(Level.SEVERE, null, ex);
            throw new MensajeException(Constantes.Mensajes.noMuestra);
        }


    }
}